package com.lzy.pattern.observer.jdk;

import java.util.Observable;

/**
 * @ClassName: Thief
 * @Description: 被观察者
 * Observable 类是抽象目标类（被观察者），它有一个 Vector 集合成员变量，用于保存所有要通知的观察者对象，下面来介绍它最重要的 3 个方法。
 * void addObserver(Observer o) 方法：用于将新的观察者对象添加到集合中。
 * void notifyObservers(Object arg) 方法：调用集合中的所有观察者对象的 update方法，通知它们数据发生改变。通常越晚加入集合的观察者越先得到通知。
 * void setChange() 方法：用来设置一个 boolean 类型的内部标志，注明目标对象发生了变化。当它为true时，notifyObservers() 才会通知观察者。
 * @Author: LiuZy
 * @Date: 2022/5/1 16:22
 * @Version: 1.0
 */
public class Thief extends Observable{
    private String name;
    public Thief(String name){
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void steal(){
        System.out.println(String.format("%s，这辈子打工是不可能打工的，警察是不可能抓到我的。。", this.name));
        super.setChanged();
        super.notifyObservers();
    }
}